package com.yunke.vo.user;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 用户信息VO
 * 
 * @author yunke
 * @since 1.0.0
 */
@Data
public class YunkeUserInfoVo {

    /**
     * 用户ID
     */
    private Long id;

    /**
     * 用户名
     */
    private String username;

    /**
     * 昵称
     */
    private String nickname;

    /**
     * 手机号（脱敏）
     */
    private String phone;

    /**
     * 真实姓名
     */
    private String realName;

    /**
     * 性别 1-男 2-女
     */
    private Integer sex;

    /**
     * 性别 1-男 2-女 (兼容字段)
     */
    private Integer gender;

    /**
     * 性别描述
     */
    private String sexDesc;

    /**
     * 头像
     */
    private String avatar;

    /**
     * 邀请码
     */
    private String inviteCode;

    /**
     * 状态 1-启用 0-禁用
     */
    private Integer status;

    /**
     * 状态描述
     */
    private String statusDesc;

    /**
     * 余额
     */
    private BigDecimal balance;

    /**
     * 会员等级ID
     */
    private Long levelId;

    /**
     * 等级名称
     */
    private String levelName;

    /**
     * 生日
     */
    private String birthday;

    /**
     * 省份名称
     */
    private String provinceName;

    /**
     * 城市名称
     */
    private String cityName;

    /**
     * 区域名称
     */
    private String areaName;

    /**
     * 详细地址
     */
    private String address;

    /**
     * 经度
     */
    private String longitude;

    /**
     * 纬度
     */
    private String dimension;

    /**
     * 关注数
     */
    private Integer follow;

    /**
     * 粉丝数
     */
    private Integer fans;

    /**
     * 总收入
     */
    private BigDecimal totalIncome;

    /**
     * 实名认证状态 0-未认证 1-审核中 2-认证通过
     */
    private Integer isAuthentication;

    /**
     * 认证状态描述
     */
    private String authenticationDesc;

    /**
     * 身高
     */
    private String height;

    /**
     * 学校
     */
    private String school;

    /**
     * 语音介绍
     */
    private String speech;

    /**
     * 相册图片
     */
    private String img;

    /**
     * 标签
     */
    private String label;

    /**
     * 介绍
     */
    private String introduce;

    /**
     * 个性签名
     */
    private String signature;

    /**
     * VIP等级
     */
    private Integer vipLevel;

    /**
     * 是否认证
     */
    private Boolean isAuth;

    /**
     * 封面图片
     */
    private String coverImage;

    /**
     * 年龄
     */
    private Integer age;

    /**
     * 背景图片
     */
    private String backgroundImg;

    /**
     * 是否在线 1-在线
     */
    private Integer isOnline;

    /**
     * 在线状态描述
     */
    private String onlineDesc;

    /**
     * 注册时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 最后登录时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime lastLoginTime;
} 